package com.dev.jwt.config;

import com.dev.jwt.interceptor.CrossInterceptorHandler;
import com.dev.jwt.interceptor.LoginInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

/**
 * WebMvcConfigurer的实现类，用于自定义Spring MVC的配置，例如拦截器的设置。
 */
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {

    /**
     * 添加拦截器到应用中。
     *
     * @param registry 拦截器注册表，用于注册和管理拦截器。
     *
     * 本方法中，首先添加了一个处理跨域请求的拦截器CrossInterceptorHandler，应用到所有路径。
     * 接着添加了一个登录拦截器LoginInterceptor，应用到所有路径，但排除了/user/login和/error/**路径。
     * 这样配置是为了确保登录页面和错误页面不受登录拦截器的影响。
     */
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(new CrossInterceptorHandler()).addPathPatterns(new String[] {"/**"});
        registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/**").excludePathPatterns("/user/login", "/error/**");
    }
}
